﻿using System;
using System.Collections.Generic;

namespace Oxage.Simulator
{
	public interface IStepDriver
	{
		/// <summary>
		/// When implemented gets the current cursor/tool position in steps.
		/// </summary>
		NPoint Cursor { get; }

		/// <summary>
		/// When implemented gets reference points, e.g. home position, limits, user-defined references, etc.
		/// </summary>
		IList<NPoint> ReferencePoints { get; }

		/// <summary>
		/// When implemented makes a single step for each axis specified in 'delta' parameter.
		/// </summary>
		/// <param name="delta">
		/// Direction of movement:
		/// &lt; 0 ... one step in negative direction
		/// &gt; 0 ... one step in positive direction
		/// = 0 ... no movement</param>
		void Step(NPoint delta);
	}
}
